home *** CD-ROM | disk | FTP | other *** search
- /* $Id: I3DEXLIT.H 1.8 1996/09/27 19:10:02 ERIC-G-PC Exp $ */
- /*****************************************************************************\
- * *
- * I3DExLit.h - I3DExLightsource definition *
- * *
- * Copyright (c) 1995, Ray Dream, Inc. All rights reserved. *
- * *
- \*****************************************************************************/
-
- #ifndef __I3DEXLIT__
- #define __I3DEXLIT__
-
- #ifndef __I3DEX__
- #include "I3DEx.h"
- #endif
-
-
- //****** Globally Unique Ids *************************************************
-
- DEFINE_GUID(IID_I3DExLightsource, 0xA930ED80L, 0x3A02, 0x101C, 0x88, 0x5F, 0x04, 0x02, 0x1C, 0x00, 0x70, 0x02);
-
- /*****************************************************************************\
- * I3DExLightsource *
- * *
- * Light Sources *
- * *
- \*****************************************************************************/
-
- typedef void (*ForEachShadowBufferCallback)(BOOLEAN lightType, TRANSFORM3D* transform, NUM3D halfAngle, void* priv);
-
- #undef INTERFACE
- #define INTERFACE I3DExLightsource
-
- DECLARE_INTERFACE_(I3DExLightsource, I3DExDataExchanger) {
- // IUnknown methods
- STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
-
- // I3DExtension methods
- STDMETHOD_(I3DExtension*, Clone) (THIS) PURE;
- STDMETHOD(ShellUtilitiesInit) (THIS_ IShUtilities* shellUtilities) PURE;
-
- // I3DExDataExchanger methods
- STDMETHOD_(ExtensionDataMap*, GetExtensionDataMap) (THIS) PURE;
- STDMETHOD_(void*, GetExtensionDataBuffer) (THIS) PURE;
- STDMETHOD(ExtensionDataChanged) (THIS) PURE;
- STDMETHOD(HandleEvent) (THIS_ ULONG sourceID) PURE;
- STDMETHOD_(short, GetResID) (THIS) PURE;
-
- // I3DExLightsource methods
- STDMETHOD(SetTransform) (THIS_ TRANSFORM3D* transform) PURE;
- STDMETHOD(GetDirection) (THIS_ VECTOR3D* position, VECTOR3D* resultDirection, NUM3D* resultDistance) PURE;
- STDMETHOD_(BOOLEAN, GetColor) (THIS_ VECTOR3D* position, VECTOR3D* direction, NUM3D distance, COLOR3D* result, BOOLEAN* callForShadowEffect) PURE;
-
- STDMETHOD_(BOOLEAN, IsVisibleInPerspective) (THIS) PURE;
- STDMETHOD(ShadowEffect) (THIS_ NUM3D distance, COLOR3D* result) PURE;
- STDMETHOD_(LightTraceElement*, GetNewTrace) (THIS_ short* nb) PURE;
- STDMETHOD_(ULONG, GetPrimitiveID) (THIS) PURE;
- STDMETHOD(ForEachShadowBuffer) (THIS_ ForEachShadowBufferCallback proc, void* priv) PURE;
- STDMETHOD(GetLightParameter) (THIS_ long keyword, void* parameter) PURE;
- };
-
-
- #endif
-